/**
 * 
 */
package ar.utn.frgp.banco.service.impl;

import ar.utn.frgp.banco.dao.ClientesDAO;
import ar.utn.frgp.banco.dto.UserDTO;
import ar.utn.frgp.banco.entity.Cliente;
import ar.utn.frgp.banco.exceptions.InvalidUserException;
import ar.utn.frgp.banco.exceptions.PersonalisedException;
import ar.utn.frgp.banco.service.EBAbstractService;
import ar.utn.frgp.banco.service.GestionUsuariosService;

/**
 * @author PUSDERKIS
 *
 */
public class GestionUsuariosServiceImpl extends EBAbstractService implements
		GestionUsuariosService {
	
	
	private ClientesDAO clientesDAO;

	


	/**
	 * @see ar.utn.frgp.banco.service.GestionUsuariosService#hacerLogIn(java.lang.String, java.lang.String)
	 */
	public UserDTO hacerLogIn(String dni, String pwd)
			throws PersonalisedException {
		
		if ("".equals(pwd) || pwd == null || "".equals(dni) || dni == null){
			throw new InvalidUserException("Usuario o contraseña invalida.");
		}
		
		Cliente c = clientesDAO.getCliente(dni);
		if (c == null){
			throw new InvalidUserException("Usuario o contraseña invalios.");
		}
		
		UserDTO dto = new UserDTO();
		if (pwd.equals(c.getClave())){
			dto.setDni(c.getDni());
			dto.setNombreCompleto(c.getNombre() + " " + c.getApellido());
			dto.setLogOk(true);
		} else {
			throw new InvalidUserException("Usuario o contraseña invalida.");
		}
			
		return dto;
	}

	/**
	 * @param clientesDAO the clientesDAO to set
	 */
	public void setClientesDAO(ClientesDAO clientesDAO) {
		this.clientesDAO = clientesDAO;
	}
}
